Towards Provably Correct Code Generation via Horn Logical Continuation Semantics
نویسندگان
چکیده
Provably correct compilation is an important aspect in development of high assurance software systems. In this paper we explore approaches to provably correct code generation based on programming language semantics, particularly Horn logical semantics, and partial evaluation. We show that the definite clause grammar (DCG) notation can be used for specifying both the syntax and semantics of imperative languages. We next show that continuation semantics can also be expressed in the Horn logical framework.
منابع مشابه
Provably Correct Code Generation: A Case Study
Provably correct compilation is an important aspect in development of high assurance software systems. In this paper we present an approach to provably correct compilation based on Horn logical semantics of programming languages and partial evaluation. We also show that continuation semantics can be expressed in the Horn logical framework, and introduce Definite Clause Semantics. We illustrate ...
متن کاملRe ning Semantics for Multi-stage Programming
The multi-stage programming paradigm supports runtime code generation and execution. Though powerful, its potential is impeded by the lack of static analysis support. Van Horn and Might proposed a general-purpose approach to systematically develop static analyses by transforming an environmental abstract machine, which evolves a control string, an environment and a continuation as a program eva...
متن کاملAutomatic Generation of Provably Correct Parallelizing Compilers
We show how parallelizing compilers can be automatically derived from denotational deenitions of programming languages. In our approach, the denotational deenition is expressed using deenite clause grammars (syntax speciication) and Horn Logic or Constraint Logic (semantic speciication). The conditions for executing two or more statements in parallel (e.g., GCD test, Banerjee test, or exact tes...
متن کاملIncorporating Static Analysis in a Combinator-Based Compiler
We show how restructuring a denotational definition leads to a more etlicient compiling algorithm. Three semantics-preserving transformations (static replacement, factoring, and combinator selection) are used to convert a continuation semantics into a formal description of a semantic analyzer and code generator. The compiling algorithm derived below performs type checking before code generation...
متن کاملT C C F
We review links between three logic formalisms and three approaches to specifying operational semantics. In particular, we show that specifications written with (small-step and big-step) SOS, abstract machines, and multiset rewriting, are closely related to Horn clauses, binary clauses, and (a subset of) linear logic, respectively. We shall illustrate how binary clauses form a bridge between th...
متن کامل